// @Author     : bigbeard
// @Modify by  :
// @Date       : 2021/10/28
// @Modify date:
// @Version    : 1.0
// @Description:

package util

import (
	"fmt"
	"os"
)

// CheckAppIsRunning 检查应用是否已经启动,检查应用是否被修改过名称
// 参数:	appName:程序设计时确定的应用名称
// 返回:	true程序可以正常启动,false:程序不能启动,原因需要查看日志
func CheckAppIsRunning(appName string) (bool, error) {
	pid := os.Getpid()
	name, err := GetProcessName(pid)
	if err != nil {
		return false, fmt.Errorf("获取进程名称失败,错误信息:%v", err)
	}
	if name != appName {
		return false, fmt.Errorf("进程名称发生变化,系统无法读取信息,请确保进程名称为:%v", appName)
	}
	processPid, err := GetProcessPid(appName)
	if err != nil {
		return false, fmt.Errorf("获取进程PID失败,错误信息:%v", err)
	}
	result := len(processPid) <= 1
	if !result {
		return false, fmt.Errorf("程序已经启动,不能重复启动")
	}
	return result, nil
}
